set(SOURCES
    main.cpp
    core/server.cpp
    core/session.cpp
    core/session_manager.cpp
    core/message_router.cpp
    core/handlers/auth_handler.cpp
    core/handlers/register_handler.cpp
    core/handlers/logout_handler.cpp
    models/user.cpp
    database/mysql_manager.cpp
    database/redis_manager.cpp
    config/config.cpp
    utils/logger.cpp
)

add_executable(${PROJECT_NAME} ${SOURCES})

target_link_libraries(${PROJECT_NAME}
    PRIVATE
    websockets
    nlohmann_json::nlohmann_json
    ${MYSQLCPPCONN_LIBRARY}
    ${MYSQLCLIENT_LIBRARY}
    ${HIREDIS_LIBRARY}
    spdlog::spdlog
    uuid
)

# Add include directories specific to the executable
target_include_directories(${PROJECT_NAME}
    PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${MYSQLCPPCONN_INCLUDE_DIR}
    ${HIREDIS_INCLUDE_DIR}
) 